media: Be more specific in our caps
authorMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jan 2021 14:21:01 +0000 (09:21 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jan 2021 14:28:04 +0000 (09:28 -0500)
We can only handle 2D textures, so tell gstreamer
about that.

modules/media/gtkgstsink.c

index 43a83713e0632a83c8535c0119d229c14983773f..1fb6719ee43ec524e035b8853b47fc03699913e5 100644 (file)
@@ -49,13 +49,18 @@ GST_DEBUG_CATEGORY (gtk_debug_gst_sink);
 #define FORMATS "{ BGRA, ARGB, RGBA, ABGR, RGB, BGR }"
 
 #define NOGL_CAPS GST_VIDEO_CAPS_MAKE (FORMATS)
-#define GL_CAPS GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, "RGBA")
 
 static GstStaticPadTemplate gtk_gst_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GL_CAPS "; " NOGL_CAPS)
+    GST_STATIC_CAPS ("video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
+                     "format = (string) RGBA, "
+                     "width = " GST_VIDEO_SIZE_RANGE ", "
+                     "height = " GST_VIDEO_SIZE_RANGE ", "
+                     "framerate = " GST_VIDEO_FPS_RANGE ", "
+                     "texture-target = (string) 2D"
+                     "; " NOGL_CAPS)
     );
 
 G_DEFINE_TYPE_WITH_CODE (GtkGstSink, gtk_gst_sink,